#include <iostream>
#include <algorithm> //算法的头文件
#include <vector>
using namespace std;
/*
	标准模板库中的算法函数
	   1.算法都是一些通用算法，适用于容器，传统的C语言数组，string
	   2.这些算法都是普通函数，不属于哪个类
	   3.所有的算法函数，只要名字中有if，参数一定是传递函数对象用来表示某个条件
*/

int main()
{
	// C语言的数组
	int buf[8] = {100, 78, 96, 45, 96, 39, 78, 458};
	// 定义vector
	vector<int> v1 = {95, 78, 96, 45, 96, 39, 78, 68};
	// 定义string
	string str1 = "helloworld";

	// 查找指定的元素
	//  auto ret=find(buf,buf+8,78); //从buf中寻找666
	//  if(ret!=buf+8)
	//  {
	//  cout<<"恭喜找到了： "<<*ret<<endl;
	// }
	// else
	// {
	// cout<<"对不起，没有这个元素"<<endl;
	// }

	// auto ret=find(v1.begin(),v1.end(),78);
	// if(ret!=v1.end())
	// {
	// cout<<"恭喜找到了： "<<*ret<<endl;
	// }
	// else
	// {
	// cout<<"对不起，没有这个元素"<<endl;
	// }

	// auto ret=find(str1.begin(),str1.end(),'a');
	// if(ret!=str1.end())
	// {
	// cout<<"恭喜找到了： "<<*ret<<endl;
	// }
	// else
	// {
	// cout<<"对不起，没有这个元素"<<endl;
	// }

	// 带条件的查找--》把小于60的找出来
	auto ret = find_if(v1.begin(), v1.end(), [](int n)
					   { return n < 60; });
	if (ret != v1.end())
		cout << "找到第一个<60分: " << *ret << endl;
	else
		cout << "大家都很优秀，没有不及格的" << endl;
	return 0;
}